/*
 * @Description: 定义属性
 * @Author: zzj
 * @Date: 2021-09-02 14:33:53
 * @LastEditors: zzj
 * @LastEditTime: 2021-09-02 14:52:32
 */

//设置一个对象的原始属性
var obj = {
    name:"zhangsan",
    age:12,
    sex:"男"
}
//Object.defineProperty只能设置某一个对象中的某一个属性的原始属性
Object.defineProperty(obj,"name",{
    configurable:false,  //表示是否通过delete删除属性
    enumerable:false,  //表示能否通过for-in循环返回属性
    writable:false,   //表示能否修改属性的值
    value:"lisi"
}) 
console.log(obj);
delete obj.name;   //不会被删除
obj.name = "xiaoming";   // 不可以被修改
console.log(obj.name);
for (var k in obj){
    console.log(obj[k]);   //不可以被遍历返回属性
}

//想知道某个属性的原始属性 Object.getOwnPropertyDescriptor()
var res = Object.getOwnPropertyDescriptor(obj,"name");
console.log(res);

//一次设置对象的多个属性的原始属性
//Object.defineProperties
Object.defineProperties(obj,{
    age:{
        configurable:false
    },
    sex:{
        configurable:false
    }
})